package com.ruoyi.system.service;

import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.system.domain.SysDevice;

import java.util.List;
import java.util.Map;

/**
 * 角色信息表(SysDevice)表服务接口
 *
 * @author makejava
 * @since 2022-03-16 10:44:21
 */
public interface ISysDeviceService {

    /**
     * 根据条件分页查询设备数据
     *
     * @param device 角色信息
     * @return 角色数据集合信息
     */
    public List<SysDevice> selectDeviceList(SysDevice device);

    /**
     * 查询所有设备
     *
     * @return 角色列表
     */
    public List<SysDevice> selectDeviceAll();

    /**
     * 通过设备ID查询设备
     *
     * @param deviceId 设备ID
     * @return 角色对象信息
     */
    public SysDevice selectDeviceById(Long deviceId);

    /**
     * 通过设备ID删除设备
     *
     * @param deviceId 角色ID
     * @return 结果
     */
    public boolean deleteDeviceById(Long deviceId);

    /**
     * 批量删除设备信息
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     * @throws Exception 异常
     */
    public int deleteDeviceByIds(String ids);

    /**
     * 新增保存设备信息
     *
     * @param device 角色信息
     * @return 结果
     */
    public int insertDevice(SysDevice device);

    /**
     * 修改保存设备信息
     *
     * @param device 角色信息
     * @return 结果
     */
    public int updateDevice(SysDevice device);

    /**
     * 校验设备名称是否唯一
     *
     * @param device 角色信息
     * @return 结果
     */
    public String checkDeviceNameUnique(SysDevice device);

    /**
     * 校验设备编码是否唯一
     *
     * @param device 角色信息
     * @return 结果
     */
    public String checkDeviceCodeUnique(SysDevice device);

    /**
     * 设备状态修改
     *
     * @param device 角色信息
     * @return 结果
     */
    public int changeStatus(SysDevice device);

    public int pay(SysDevice device, SysUser sysUser, String orderCode, String phone, String address, Double amount, String remark);

    public Map<String,Object> deviceTypeTools(Long deviceId);
}
